
const user = {
  state: {},
  mutations: {},
  actions: {},
  getters: {}
}


const cart = {
  state: {},
  mutations: {},
  actions: {},
  getters: {}
}
// 1 引入 
import { createStore } from 'vuex'

// 2  实例化

const store = createStore({
  // state:{} 

  state: () => {  //  定义 数据的 类似于 data 
    return {
      msg: '哈哈 vuex  学习 很简单',
      count: 10,
      price: 100
    }
  },
  mutations: {
    // state 就是获取 state 定义的对象
    add (state) {
      state.count++
    },

    add2 (state, payload) {
      state.count += payload
    }


  },
  actions: {
    // context 上下文  类似于 this  


    asyncAdd (context) {

      context.commit('add')

    },
    // num 称为 payload

    //  5000的写法
    // asyncAdd2 (context, payload) {
    //   console.log('上下文', context)
    //   context.commit('add2', payload)
    // },

    //  es6 的解构赋值  7000的写法
    asyncAdd2 ({ commit }, payload) {
      // console.log('上下文', context)

      commit('add2', payload)

    }
  },


  // 类似于 computed   一样 当属性使用
  getters: {

    //    定义 getCount  当属性使用
    getCount (state) {
      return state.count * state.price

    }


  },
  modules: {
    user,
    cart

  }



})




// 3  导出 挂载

export default store